Methods and systems for managing a multi participant event

ABSTRACT

A method for managing communication among a plurality of social network members. The method comprises defining a multi participant task, setting at least one forward rule limiting the distribution an invitation message for participating in the multi participant task, forwarding the invitation message to at least one addressee from a plurality of social network members, allowing the at least one addressee to forward the invitation message to at least one additional addressee from the plurality of social network members under the at least one forward rule, monitoring a plurality of feedbacks to the invitation message to determine whether the multi participant task is achieved, and updating a status of the multi participant task according to the determination.

RELATED APPLICATION

This application claims the benefit of priority under 35 USC 119(e) ofU.S. Provisional Patent Application No. 61/347,426 filed May 23, 2010,the contents of which are incorporated herein by reference in theirentirety.

FIELD AND BACKGROUND OF THE INVENTION

The present invention, in some embodiments thereof, relates to networkcommunication and, more particularly, but not exclusively, to methodsand systems of managing communication among a plurality of nodes in anetwork.

Social networks have recently become a prominent internet application.Networks such as Facebook™, MySpace™ and Twitter™ have gained enormouspopularity. Social networks constantly continue to grow in terms users,connections, features and proliferation to new target audiences.

The popularity of social networks and their richness of features broughtenormous amounts of data into the networks. The Claremont Report onDatabase Research, R. Agrawal et. al. The Claremont Report on DatabaseResearch. Berkeley, Calif., 200, which is incorporated herein byreference, points out social networks as an important example of thetrend of ‘Big Data’. According to this report, this trend willundoubtedly ‘shake up’ the data management field.

Some developments have made to turn social networks into an automatedplatform. One example for automation is the Facebook Query Language,which is a simple query language with which users query their own andtheir immediate friends' data, see Facebook Query Language.http://developers.facebook.com, 2009. Another query language, presentedin R. Ronen, O. Shmueli. SoQL: A Language for Querying and Creating Datain Social Networks. ICDE Workshops, 2009, which is incorporated hereinby reference, is a more expressive query language for social networkswhich uses path and group as data types. A model in which users useconjunctive queries in order to automatically add friends to theirfriends list, is proposed in R. Ronen, O. Shmueli. Evaluating Very LargeDatalog Queries on Social Networks, published in EDBT 2009, which isincorporated herein by reference.

Another example for automation features involving intelligentcommunication between participants are a Facebook application, called‘Events’, facilitates the organization of an event. The applicationautomates invitation sending to friends, and collects ‘attending’, ‘notattending’ and ‘may be attending’ responses. Responses are visible toresponders' friends. This is in fact a preliminary example for aprotocol with structured communication, which runs on top of a socialnetwork.

SUMMARY OF THE INVENTION

According to some embodiments of the present invention, there isprovided a method for managing communication among a plurality of socialnetwork members. The method comprises receiving, from a user, at leastone forward rule limiting the distribution an invitation message forparticipating in a multi participant task, forwarding the invitationmessage to at least one addressee from a plurality of social networkmembers, monitoring the forwarding of the invitation message by the atleast one addressee to at least one additional addressee from theplurality of social network members under the at least one forward rule,and managing the distribution of the invitation message according to themonitoring.

Optionally, the method further comprises monitoring a plurality offeedbacks to the invitation message to determine whether the multiparticipant task is achieved and updating a status of the multiparticipant task according to the determination.

Optionally, each additional addressee may forward the invitation messageto at least one further additional addressee from the plurality ofsocial network members under the at least one forward rule and so on andso forth.

Optionally, the monitoring comprises allowing the at least one addresseeof the invitation message to adjust the at least one forward rule andforwarding the invitation message with the at least one adjusted forwardrule to the at least one additional addressee so that the at least oneadditional addressee may forward the invitation message to under the atleast one adjusted forward rule.

Optionally, the monitoring comprises allowing the at least one addresseeof the invitation message to add at least one new forward rule to the atleast one forward rule and forwarding the invitation message with the atleast one added forward rule to the at least one additional addressee sothat the at least one additional addressee may forward the invitationmessage to under the at least one adjusted forward rule.

Optionally, the at least one forward rule defines at least onecharacteristic of a potential addressee of the invitation message.

More optionally, the method further comprises allowing at least onerecipient of the invitation message to define at least one conditionalrule for participation in the multi participant task; the monitoringcomprises monitoring the fulfillment of the at least one conditionalrule and determining whether the multi participant task being achievedaccording to the fulfillment.

More optionally, the at least one conditional rule defines at least oneof an attendance of one of the plurality of social network members inthe multi participant task and a nonattendance of one of the pluralityof social network members in the multi participant task.

Optionally, the multi participant task comprises allocating at least oneresource to a group of the plurality of social network members; furthercomprising adjusting the at least one forwarding rule according to theavailability of the at least one resource.

More optionally, each of the plurality of feedbacks comprises a feedbackrequired for completing the multi participant task.

More optionally, the feedback is selected from a group consisting of: acompletion of a survey, acquisition of a product, a money transfer,joining a coupon group, and content uploading.

Optionally, the invitation message defines at least one validity rulelimiting the validity of a feedback of the reception thereof.

More optionally, the at least one validity rule comprises a time limitconstraint.

More optionally, the at least one validity rule comprises a surveycompletion constraint.

Optionally, the at least one forward rule comprises a black list of atleast one of the plurality of social network members who are refusedfrom participating in the multi participant task.

Optionally, the at least one forward rule comprises a white list of agroup of allowed addressees from the plurality of social networkmembers.

According to some embodiments of the present invention, there isprovided a system of managing communication among a plurality of socialnetwork members. The system comprises a first user interface whichallows a user to define an invitation message for participating in amulti participant task and at least one message forward rule limitingthe distribution thereof, a second user interface which allows eachrecipient of the invitation message to select at least one addresseefrom the plurality of social network members and verifies that the atleast one addressee complies with the at least one message forward rule,and a monitoring module which monitors a plurality of feedbacks to theinvitation message to determine whether the multi participant task isachieved and updates a status of the multi participant task according tothe plurality of feedbacks.

According to some embodiments of the present invention, there isprovided a method for managing a multi participant process among aplurality of social network members. The method comprises monitoring aplurality of decisions indicative of a participation in a multiparticipant task of a plurality of social network members, setting,according to the monitoring, a plurality of stability statuses each foranother of the plurality of social network members, detecting at leastone first change, made by at least one of the plurality of socialnetwork members, in at least one of the plurality of decisions,notifying members of a group of the plurality of social network memberswhich are socially connected to the at least one social network memberabout the at least one first change to allow each member to perform atleast one second change in at least one respective of the plurality ofdecisions, updating respective stability statuses of the plurality ofstability statuses according to the change, and determining whether themulti participant task is fulfilled or not according to the plurality ofstability statuses.

Optionally, the decision of each social network member is recorded in aconsistency table indicative of the decision of a respective group ofthe plurality of social network members which are socially connectedthereto.

Optionally, the notifying is performed in a one-way communicationarchitecture.

According to some embodiments of the present invention, there isprovided a method for managing a multi participant process among aplurality of social network members. The method comprises using at leastone global structure to model conditional relations between a pluralityof multi participant decision process instances, monitoring a pluralityof decisions indicative of a participation of a plurality of socialnetwork members in the plurality of multi participant decision processinstances, updating a completion status of a first of the plurality ofmulti participant decision process instances according to themonitoring, and notifying a plurality of members of a second of theplurality of multi participant decision process instances about theupdated completion status to allow the plurality of members to changedecisions made during the second multi participant decision processinstance.

Optionally, the at least one global structure comprise a commit abortgraph (CAG) wherein each node represents a completion status of anotherof the plurality of multi participant decision process instances.

Optionally, the at least one global structure comprise a wait-for graph(WFG) wherein each node represents a stability status of another of theplurality of multi participant decision process instances; wherein thecompletion status is determined based on the WFG.

According to some embodiments of the present invention, there isprovided a method for collecting funds for a multi participant taskamong a plurality of social network members. The method comprisessetting an amount of funds required for achieving a multi participanttask by a certain deadline, sending a plurality of messages to notify aplurality of social network members about the amount, the multiparticipant task, and the deadline, monitoring a plurality of feedbacksto the plurality of messages and the deadline to determine whether themulti participant task being achieved, and outputting the determination.

Optionally, the monitoring comprises calculating a reminder left forcollecting the amount according to the plurality of messages and sendinga plurality of update messages to notify the plurality of social networkmembers about the reminder.

Unless otherwise defined, all technical and/or scientific terms usedherein have the same meaning as commonly understood by one of ordinaryskill in the art to which the invention pertains. Although methods andmaterials similar or equivalent to those described herein can be used inthe practice or testing of embodiments of the invention, exemplarymethods and/or materials are described below. In case of conflict, thepatent specification, including definitions, will control. In addition,the materials, methods, and examples are illustrative only and are notintended to be necessarily limiting.

Implementation of the method and/or system of embodiments of theinvention can involve performing or completing selected tasks manually,automatically, or a combination thereof. Moreover, according to actualinstrumentation and equipment of embodiments of the method and/or systemof the invention, several selected tasks could be implemented byhardware, by software or by firmware or by a combination thereof usingan operating system.

For example, hardware for performing selected tasks according toembodiments of the invention could be implemented as a chip or acircuit. As software, selected tasks according to embodiments of theinvention could be implemented as a plurality of software instructionsbeing executed by a computer using any suitable operating system. In anexemplary embodiment of the invention, one or more tasks according toexemplary embodiments of method and/or system as described herein areperformed by a data processor, such as a computing platform forexecuting a plurality of instructions. Optionally, the data processorincludes a volatile memory for storing instructions and/or data and/or anon-volatile storage, for example, a magnetic hard-disk and/or removablemedia, for storing instructions and/or data. Optionally, a networkconnection is provided as well. A display and/or a user input devicesuch as a keyboard or mouse are optionally provided as well.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments of the invention are herein described, by way ofexample only, with reference to the accompanying drawings. With specificreference now to the drawings in detail, it is stressed that theparticulars shown are by way of example and for purposes of illustrativediscussion of embodiments of the invention. In this regard, thedescription taken with the drawings makes apparent to those skilled inthe art how embodiments of the invention may be practiced.

In the drawings:

FIG. 1 is a flowchart of a method for managing communication among aplurality of social network members to achieve a multi participant task,according to some embodiments of the present invention;

FIG. 2 is a graph of exemplary templates, according to some embodimentsof the present invention;

FIG. 3 is a table which defines possible values for exemplary forwardingrights, according to some embodiments of the present invention;

FIG. 4 depicts tables which are an example of the recording of theprocess depicted in FIG. 3, according to some embodiments of the presentinvention;

FIG. 5 is a schematic illustration of an unidirectional graph depictinga segment of a social network that takes part in a process for gatheringsocial network members to achieve a multi participant task, according tosome embodiments of the present invention;

FIG. 6 depicts tables with explanations of forward rules values,according to some embodiments of the present invention;

FIG. 7 is a flowchart of a method of managing a multi participantdecision process that allows participants to change their decision whilemaintaining the consistency of multi participant decision process,according to some embodiments of the present invention;

FIG. 8 is a schematic illustration of connections in a group ofconnected social network members and respective consistently tables,according to some embodiments of the present invention;

FIG. 9 is a schematic illustration of message flow among exemplary nodesand a list of conditional terms for participation, according to someembodiments of the present invention;

FIG. 10A is a schematic illustration of a scenario at which nodes in twomulti participant decision processes perform changes, according to someembodiments of the present invention; and

FIG. 10B denotes a commit-abort graph corresponding with the multiparticipant decision processes depicted in FIG. 10A, according to someembodiments of the present invention.

DESCRIPTION OF EMBODIMENTS OF THE INVENTION

The present invention, in some embodiments thereof, relates to networkcommunication and, more particularly, but not exclusively, to methodsand systems of managing communication among a plurality of nodes in anetwork.

According to some embodiments of the present invention, there areprovided methods and systems for managing a multi participant decisionprocess wherein a user can distribute an invitation to participate in amulti participant task, for example an event or a group purchasinginstance, in a controlled manner among members of one or more socialnetworks. Optionally, the initiator of the multi participant decisionprocess defines the multi participant task, an invitation message to themulti participant task, and one or more forwarding rules that set adistribution policy. The distribution policy optionally defines thenumber and/or the type of addressees each recipient may correspond theinvitation. The distribution policy may set rules pertaining tofeedbacks to the received invitation message. For example, addresseesmay be required to respond to the invitation message within a certainperiod and/or with certain data, such as answers to a questionnaire.Optionally, some or all of the addressees may add forward rules to theinvitation messages they send and/or adjust the received forward rules.Optionally, the forward rules are dynamic and change with the progressof the multi participant decision process, for example according to theresponsiveness of the addressees. Optionally, some or all of theaddressees may add conditional terms for their participation in themulti participant task. For example, an addressee may agree toparticipate only if another addressee also participate or does notparticipate in the multi participant task.

According to some embodiments of the present invention, there areprovided methods and systems for managing a multi participant decisionprocess in a manner that allows participating members of a socialnetwork to change their decision as long as the multi participantdecision process is held. As the participating members are part of asocial network, unidirectional and/or bidirectional connections areestablished thereamong. These connections are optionally used todetermine which of the participating members has to be notified when acertain participating member changes his decision. Optionally, in orderto allow the participating members to regret about decision they made inreal time, a consistency table is updated for at least some of aplurality of the participating members. The consistency table of eachmember logs the status of the respective member and of members which aresocially connected thereto.

According to some embodiments of the present invention, a plurality ofmulti participant decision processes are managed simultaneously in amanner that allows a participant to condition his participation in onemulti participant task on the outcome of one or more multi participantdecision processes of another multi participant task. The conditioningis optionally monitored using one or more global structures, such asgraphs, for example a wait-for graph (WFG) and a commit-abort graph(CAG).

According to some embodiments of the present invention, there areprovided methods and systems for collecting funds for a multiparticipant task, such as a gift, among a plurality of social networkmembers. The method comprises setting an amount of funds required forachieving a multi participant task by a certain deadline, sending aplurality of messages to notify a plurality of social network membersabout the amount, the multi participant task, and the deadline,monitoring a plurality of feedbacks to the messages and the deadline todetermine whether said multi participant task being achieved, andoutputting the determination, for example presenting it to theparticipants.

Before explaining at least one embodiment of the invention in detail, itis to be understood that the invention is not necessarily limited in itsapplication to the details of construction and the arrangement of thecomponents and/or methods set forth in the following description and/orillustrated in the drawings and/or the examples. The invention iscapable of other embodiments or of being practiced or carried out invarious ways.

Reference is now made to FIG. 1, which is a flowchart of a method 100for managing a multi participant decision process among a plurality ofsocial network members to achieve a multi participant task, optionallycommon, for example a multi participant event according to someembodiments of the present invention. This method allows managing amulti participant decision process wherein a plurality of participantsmay decide whether they are interested to participate in a process forachieving a multi participant task or not. As used herein, the socialnetwork members are optionally entities, also known as nodes, of anetwork of connected entities, for example as an undirected graph, suchas a social network. Each entity optionally represents a real worldentity. The social network members may be referred to herein asparticipants. For instance, the social network members are subscribersof Facebook™, Twitter™, Myspace™, Linkedin™ and the like. A multiparticipant task may be the conducting of a multi participant event, forexample an event in which a plurality of entities takes part. The multiparticipant event may be a group purchasing gathering, a fund raisingaction, a gathering event, a ticket distribution action, a creation ofcontent, such as multimedia content, and the like. The multi participanttask may be realizing a number of attendances in a multi participantevent, a minimal and/or maximal number of attendances in a multiparticipant event, a collaborative work, such as the creation of an artpiece, a shared document, a contract and the like.

The process 100 depicted in FIG. 1 is optionally monitored by one ormore central computing unit(s). First, as shown at 101, an invitationmessage to participate in a multi participant task is defined by aninitiator node, such as one of the network members and/or an automaticinitiator, such as a software module, referred to herein as aninitiator. For simplicity of the discussion, we describe initiation by asingle initiator; however multiple members of a social network mayinitiate the process concurrently where a number of initiators mayindependently start instances related to the same multi participantsevent. The multi participant task may be conducting a multi participantevent with a certain number of participants, performing a collaborativework, and/or taking part in a certain donation and/or action.

Optionally, the type of the multi participant task, for example type ofa multi participant event, is selected from a database which defines aplurality of templates for a plurality of different events. Thetemplate, also referred to as a modifier, is set according to expectedbehavior of participants in a process for recruiting participants forachieving the multi participant task. For example, FIG. 2 depicts agraph of exemplary templates. This database of templates is optionallyas defined in J. Dean and S. Ghemawat, MapReduce: Simplified dataprocessing on large clusters, In Proc. OSDI, 2004, which is incorporatedherein by reference. The templates may be defined by inheriting from ageneral application program interface (API) class that captures a widevariety of cases, and functions that define various behaviors.

Now, as shown at 102, the initiator selects addressees, also referred toas recipients, for the invitation message from a plurality of socialnetwork members in a social network. For example, in the social network,the initiator, which is optionally a subscriber, selects a group offriends as addressees. As shown at 103, the initiator further associatesone or more forward rules that define the terms for forwarding theinvitation message by the addressees. These forward rules may defineforwarding rights, namely the right to forward the invitation message toother social network members. It should be noted that the invitationmessage may be forwarded as a copy of the original invitation message,as a new message that is generated by the sender, and/or as anotification in an invitation system. These forward rules limit thedistribution of the invitation message to addressees who comply with acertain policy and/or rule(s), for example part of one or moredemographic segments, for instance in a certain age, part of a certainwhite list, not in a certain black list, living in a certain geographicarea (country, neighborhood and the like), part of a certain group, suchas pet owners, belonging to people above a certain height, members of analumni, having a certain education, having a certain number of friends,having a certain type of friends, and the like. Optionally, the one ormore forward rules define the number of invitees per addressee.Optionally, different forward rules are set for different addressees.For example, one type of addressees may forward the invitation messageto no more than 4 more friends and another type of addressees may notforward the message to underage addressees. Optionally, the one or moreforward rules define different restrictions to different levels ofaddressees.

As shown at 104, the invitation message is sent to the selectedaddressees, with the forward rules. The invitation message may be sentas an event notification, an email, an instant message (IM), and/or anyother notification according to a respective social network methodology.

As shown at 105, each addressee may forward the invitation message shereceives according to the associated forward rules. As described above,an addressee (first level) may forward the message to other addressees(second level) which may further forward the message to additionaladdressees (third level) and so on and so forth. Different limitationsmay be defined for addressees in different levels. For example firstlevel addressees may forward the invitation to any number of secondlevel addressees, however the second level addressees may be granted theright to forward the invitation message to only a limited number ofaddressees. Optionally, the rules are represented by values in a headerfor reducing the bandwidth and computational complexity which isassociated therewith. For example, FIG. 3 depicts a table which definespossible values for exemplary forwarding rights.

As shown at 106, each one of the addressees may forward a receivedinvitation message to one or more addressees from the network accordingto the associated forward rule(s). For example, forwarding can only bedone to friends of the forwarder in one or more social networks.

It should be noted that the addressees may be selected from a number ofdifferent social networks which are provided by different operators, forexample Facebook™, Twitter™ and LinkedIn™.

Optionally, as shown at 107, addressees who receive the invitationmessage may forward the message to different addressees they select inlight of the forward message rule(s). This forwarding and/or thedifferent addressees comply with the forward message rule(s).Addressees, who receive the invitation message from other addressees,may forward the invitation message to social network members (nodes)which are directly and/or indirectly connected thereto in a socialnetwork, for example to friends and/or friends of friends. Addresseesmay be referred to herein as participants.

For example, FIG. 3 depicts an exemplary segment of a social networkwherein the method is implemented. The initiator, marked with 1, sendsthe invitation messages (A) to addressees 2 and 3. They forward theinvitation messages to addressees 4, 6, and 7. The forwarded invitationmessage may be adjusted by the forwarders, for example as furtherdescribed below. A forwarded invitation message is marked as message B.As shown in FIG. 3, the second layer addressees forward the message tothird layer addressees (5, 6) and so on and so forth. Exemplary feedbackmessages are marked with a striped line. An exemplary recording of theprocess depicted in FIG. 3 is provided in the tables depicted in FIG. 4.

Optionally, the forwarding rule(s) are dynamic, for example changeaccording to the availability of a resource, the current number ofresponding addressees, and/or changes in the cost target of the multiparticipant task (i.e. in fund raising task). For example, if the taskis collecting a certain amount of funds for a common goal, such as adonation, a gift to a common friend and/or a multi participant event,the resource is the required certain amount and the availability of theresource is the sum of funds left to recruit the certain amount.

Optionally, the forwarding rule(s), which are set by the initiatorand/or a forwarder, may be locked or unlocked for modifications. Lockedforwarding rule(s) do not allow an addressee to change them before sheforwards the invitation message to other addressee(s). Unlockedforwarding rule(s) may be changed and/or removed by the addressee beforeshe forwards the invitation message to other addressee(s). Optionally,an invitation message may include locked and unlocked invitationmessages.

Each one of the addressees of the invitation message may respond and/orrequired to respond to the received invitation message, for example bysending a response message, also referred to as a feedback, to amonitoring node, for example as shown at 107. The feedback may be sentdirectly to the initiator of the process, to a central unit whichmanages the reception of the feedbacks, and/or indirectly at a path ofaddressees which have forwarded the invitation message from one toanother until it was received by the responding entity. The feedback maybe indicative of accepting the invitation, declining the invitation,and/or postponing the decision how to respond to the invitation.

Optionally, an invitation message that includes a feedback requirementmay include a query q. The feedback requirement may be for a literalanswer, a completion of a task, such as acquiring a product and/ortransferring money, uploading content, such as images and the like. Thismeans that only participants who respond to the feedback requirement areregistered as accepting the invitation message. Addressees who forwardthe invitation massage, which may be referred to as forwarders, mayreplace the feedback requirement with another feedback requirementand/or add new feedback requirement(s) to the invitation message. Insuch a manner, a forwarder adds requirements for participation in themulti participant event. Optionally, a feedback requirement set by aforwarder must include the feedback requirement set by the initiator.

Optionally, a feedback requirement defines a feedback deadline. By thisdeadline, the addressee has to respond whether she receives theinvitation. If the deadline passes without a positive feedback, thefeedback for the invitation to participate in the multi participantevent is automatically considered as being negative. Optionally, aforwarder may change and/or add a feedback deadline to the invitationmessage. Optionally, the feedback deadline, which is set by theforwarder, is bound to the limitation(s) of feedback deadline(s) set bythe initiator and/or one or more forwarders which have forwarded theinvitation message thereto.

Now, as shown at 108, the feedback messages are received and analyzed todetermine whether the multi participant task is achieved or not. Thisallows updating the status of the multi participant task according tothe determination, for example achieved or not. Optionally, the feedbackis made by updating a status associated with the respective addressee.The updating may be from idle to positive (yes) and/or negative (no).

It should be noted that the method described herein is optionallymanaged at a managing node that is connected to a communication network,such as the internet, for example a server.

Reference is now made to FIG. 5, which is a schematic illustration of aunidirectional graph depicting a segment of a social network that takespart in a process for gathering social network members to achieve amulti participant task, an alumni reunion party of a certain amount ofalumni members, for example as many as possible, according to someembodiments of the present invention. It should be noted that names,which are used in this description, are indicative of nodes andtherefore may represent an entity that is managed from a clientterminal, such as a laptop, a desktop, tablet, and/or a Smartphone thatis connected to a social network server via a communication networkconnection, for example over the internet.

The initiator, Bob, initiates a process for organizing a reunion partyfor university alumni. The multi participant task is to perform a multiparticipant event with as many as possible alumni and a few personalfriends who are not alumni. As the initiator of the multi participantevent, Bob sends invitation messages to non-alumni personal friends thathe would like to invite and to alumni with whom he is connected in thesocial network. Bob defines different forward rules for differentaddressees. Bob defines the forward rules so that non-alumni invitees donot have the right to forward the invitation message to other people andalumni invitees may forward the invitation message to other alumni withwhom they are connected. As described above, with relation to 106, notonly Bob's direct friends can forward the invitation. Every addresseewho receives the invitation message, who is an alumnus, may forward itfurther to other alumni. Alumni invitees who would like to attend, arerequired to send a feedback. For example, invitees are asked to sendrépondez s'il vous plait (RSVP) messages at least two days before theevent. Optionally, each aluminous may send the invitation to onenon-alumni invitee, for example under a forwarding rule that defines thenon-alumni invitee as a spouse. Non-alumni invitees may not be requiredto send RSVP messages. At the graph segment illustrated in FIG. 5, apossible sequence of messages for Bob's process for organizing thereunion party on this network follows:

-   -   Bob initiates and sends two invitation messages, without        forwarding rights, to Jerry and Hillary and three messages, with        forwarding rights, to Hillary, Anand, and Sheila.    -   Jerry cannot attend, and responds accordingly.    -   Hillary responds positively (RSVP is not required from her).        Note that none of Jerry or Hillary can forward the invitation.    -   Sheila could forward the message to Eve and Li who are alumni.        She decides to forward only to Eve.    -   Eve does not respond positively, however she forwards the        invitation message to Patrick.    -   Anand forwards the message to Eve and David, responds positively        and sends Bob an RSVP.    -   After receiving the second invitation, Eve responds positively        and sends an RSVP message.    -   Patrick forwards the invitation message to David.    -   A little before the deadline, David sends Bob an RSVP message.    -   Patrick does not send an RSVP on time. An automatic negative        feedback is generated.

Reference is now made to another example wherein the multi participanttask is distributing a resource, such as tickets to a concert, amongnetwork members. In this example Alice has k tickets to the concert. Sheforwards an invitation message to a number of network members with aforward rule that limits the number of friends each member invites.Optionally, positive feedbacks of the addressees, which are indicativeof using the resource, are monitored to detect when and/or if theresource is exhausted. When the resource is exhausted, the forwardingrule dynamically changes to no forwarding rights. Optionally, the rateof exhaustion is monitored. In such a manner, the forwarding rules maybe adjusted to increase the number of addressees who may forward theinvitation message. For example, when more than 80% of the resource isfree, each addressee receives the right to forward three invitations,when less than 50% of the resource is free each addressee receives theright to forward two invitations, and when less than 30% of the resourceis free each addressee receives the right to forward one invitation.Optionally, an addressee may respond to an invitation message with anamount indicating the share of the resource she takes, for example thenumber of tickets when the resource includes available tickets. Theamount selected by the addressee optionally includes the amount ofinvitation messages she forwards, or about to forward. In some cases,participants who do not exhaust an allocated resource, for example douse all forwarding rights, may be able to send a feedback indicative oftheir decision. The feedback, as described above, may be sent to theinitiator, a managing center, and/or a plurality of addressees on thepath from the initiator to the sender. Such a message includes theamount of resource returned.

Optionally, a monitoring module, which is optionally installed in acentral server, monitors the distributed resource. For example, themonitoring module verifies, before an invitation message is forwarded,what left of the resource, for example how many available tickets arenot distributed yet. This allows making sure that there is nooverbooking.

A possible sequence of messages and feedbacks are as follows:

Alice has five tickets to share. She initiates an event and sendsmessages to Bob with a forward rule limiting the distribution to twotickets and to Karen with a forward rule limiting the distribution tothree tickets. Karen responds positively, namely takes a ticket, andforwards an invitation massage to Li. Li takes a ticket and forwards aninvitation message to Jose. Bob cannot attend the concert and thereforeonly forwards invitation messages to Jerry. Jerry takes a ticket andforwards an invitation message to Hans. Hans takes a ticket. Josereturns the ticket to Alice. The act of taking a ticket may be performedby a status changing.

Other examples, wherein the multi participant task is sharing a limitedresource, are a dinner party with a limited number of participants and acarpool with a limited number of vacancies.

As described above, the initiator and optionally, the addressees(including the addressees of addressees), may freely forward theinvitation message or associate forward rules which limit thedistribution of the invitation message, for example as described above.For example, consider a very simple protocol, derived from the method100, for setting a meeting between exactly two participants. Theinitiator sends an invitation message to a participant denoted herein asp, but without permission to forward. The addressee cannot forward themessage further. If the addressee decides to attend the meeting, apositive feedback is made, for example by sending a message or changinga respective status.

In other cases, however, participants may want to give permission toforward, but only to a certain type of participants. For example, in theexample depicted in FIG. 5 Bob allowed the invitation message to beforwarded only from one alumnus (alumnous) or alumna, referred to hereininterchangeably as alumnus, to another. Optionally, addressees mayforward the invitation message with different forwarding rules. Theforward rules of addressees are optionally limited to rules which arestricter from the forward rules which are associated with the invitationmessage they received. For example, an exemplary participant p, who isallowed to forward messages, cannot give forwarding rights with whichshe has not been granted. For example, if p has (query q, unlimited)forwarding right, exemplary participant p cannot forward with (true,unlimited), see tables in FIG. 6 for further explanation. However,exemplary participant p may modify the right as long as onlyparticipants satisfying q can become aware. Exemplary participant pcould therefore forward with right (query qo, unlimited) where q₀ iscontained in q, see, for example J. D. Ullman. Principles of Databaseand Knowledge Base Systems, Vol. I,II. C.S. Press, Rockville, Md., 1989,which is incorporated herein by reference. In this example, p mayreplace unlimited by limited, true by query or false, and query byfalse. Complying with these forwarding rights grant restrictions may bereferred to herein as politeness.

Reference is now made to a mathematical description of an exemplaryimplementation of the above method. A social network from which theaddressees are selected is optionally an undirected graph, denoted as(P; F), where P denotes a set of nodes (referred to as participants) andF denotes a set of undirected edges (representing direct connectionsbetween participants, for example friendship connections or followingconnections). As used herein, a participant is a social network memberwho optionally uses a client terminal that is associated therewith, eventemporarily, for example a laptop, a desktop, a tablet, a Smartphone, acellular phone with computing power and the like. Every participant hasan internal database and optionally a client terminal having computingpower, using which the participant may participate in the multiparticipant decision process for achieving the multi participant task,for example forming a multi participant event. Members of a socialnetwork may initiate multi participant decision processes and takedecisions in such a multi participant decision processes, for exampledetermine their status, for example among attending/not attending/maybeattending and/or among yes/no/maybe.

Optionally, each participant p is associated with four sets of event:

I_(p) denotes a set of events initiated by p with one or more eventsregarding which p is positive, Y, denotes the set of participates whodecided to participate (yes), N_(p) denotes a set of one or more eventsregarding which p is negative, and U_(p) denotes a set of one or moreevents regarding which p is undecided. In the case where e^(∉(I) ^(p)^(520 Y) ^(p) ^(∪N) ^(p) ^(∪U) ^(p) ⁾p unaware of e else p is aware ofe. The four sets are mutually exclusive. These sets determine p's statusregarding any event e of which p is aware of.

The method is realized by transmitting invitation messages among clientterminals of network members. Every invitation message is associatedwith one or more measurable goals, such as multi participant events.Once a participant p receives an invitation message associated with anevent e, p becomes aware of e and e appears in U_(p). For themathematical description, invitation messages are delivered innegligible time and are never lost and a unique global time is assumed.

After participant p becomes aware of event e, the status of p may bepositive, negative or remain undecided. Either immediately afterbecoming aware or at a later point, p and only p may move e to Y_(p) orN_(p). p's addressees, for example friends in a social network ortwitter followers, who are aware of e, can see p's status. Therefore,once e is in Y_(p) or N_(P), e cannot be moved further, since otherparticipants may have used this information.

According to some embodiments of the present invention, addressees, whoresponded positively to invitation messages, may withdraw theirwillingness to participate or become willing to participate. In such amanner, a multi participant decision process of achieving a multiparticipant task, for example as depicted in FIG. 1, remains active evenafter the multi participant task is tentatively achieved. For example,the multi participant decision process does not stop when a certainnumber of addressees approved their participation in a multi participantevent. The multi participant decision process continues until arealization of the multi participant event. During the process,addressees may withdraw their consent to participate in the multiparticipant event and/or in the efforts to achieve the common multiparticipant task. When such a withdraw is detected, a change in thestatus of an event may be made, for example from a completed statewherein the number of registered participant matches a desired number ofparticipants, to a non-completed state wherein the number of registeredparticipant does not match this desired number.

Reference is now made to FIG. 7, which is a flowchart of a method ofmanaging a multi participant decision process that allows participantsto change their decision while maintaining the consistency of multiparticipant decision process, according to some embodiments of thepresent invention. The consistency is defined below.

Optionally, in order to allow participants to change their decisions,for example to withdraw their consent or lack of agreement toparticipate in an event, a predicate, such as implemented via aparticipant table, is associated with each one of them. The predicate,for example the participant table, lists all the combinations of statusvalues of a participant p and of potential participants pertaining to p.Computing the natural join of all the participant tables gives all thestates that are considered consistent by all participants in thenetwork. Optionally, the participant table is a consistency table whichabstracts the decisions of a certain participant. A participant, asdescribed above, may take part in a multi participant decision process,such as a process in which addressees of invitation messages decidewhether to participate in a multi participant event and/or to take partin endeavors to achieve a common goal. If a decision is made manually byusers, the consistency table is a formalization of the perception of theparticipants. If automated or semi-automated tools make decisions, theconsistency table is the output of a graphical user interface (GUI)and/or a tool which interactively obtains data indicative of a positionif a user.

For brevity, a social network, such as Facebook™, Twitter™ and GoogleBuzz™, is represented by a directed graph (V; E) with reciprocalconnections. E denotes a set of directed edges, representing connectionsbetween participants. An example for an inherently directed connectionin a graph of a social network is a ‘fan of connection of Facebook™, anda ‘following’ connection of Twitter™. For describing these embodiments,a network model with a directed graph-based formalism is used. Forexample, given an edge (u,v), using Twitter terminology, v follows u.Given a participant p, the input for p's decisions, for examplefeedbacks to invitation messages, are decisions made by a participant qwhere (q, p)εE (i.e., participants that p follows). As demonstrated inthe examples, participants may indicate their decisions by changingstatus with respect to events or other multi participant tasks. Forsimplicity, various distinct multi participant tasks and decisionsrelated thereto are assumed independent of one another so that in thisexample only one event, e, is referred to.

Participants' decisions pertaining to multi participant events and/ormulti participant tasks disperse in the social network. Similarly to‘Facebook Events’ decision values may be true (participating) or false(not participating). These are determined as an event e is dispersed inthe network, and participants make decisions in accordance with their(consistency) requirements.

For brevity, the following definitions are set:

Statuses—every pεV is associated with a status value, which is p'sstatus with respect to e. Status values are denoted herein as {true,false}. It should be noted that any other statuses may be set, eitherbinary or not, e.g. {red, green, brown}.

Consistency Tables—each pεV is associated with a table T_(p). T_(p) hasan attribute (i.e., column heading) for each participant that p follows,for example for each incoming edge, and an attribute for p. T_(p) listsp's possible status decisions, for combinations of true/false statusesof participants that p follows. p is in a consistent state if T_(p)contains a sequence of values (tuple) which corresponds to p's statusand to the statuses of participants that p follows. Not all possiblecombinations of followed participants' decisions have to appear in thetable. It should be noted that the tables are socially sensitive andtherefore may remain private.

Consistency—the consistency is defined for a group of members which aretaking part in the multi participant decision process, for examplereceived an invitation message to participate in a multi participanttask. This group is connected to one another, forming a network. Forbrevity, given such a group of connected nodes, a network, has a state Swhich is a function S mapping participants→{true, false}. The group isconsistent (in state S) if all nodes, the participants, are inconsistent state. That is, if S corresponds to a tuple in

^(ν/νεV) ^((T) ^(ν) ⁾, combinations of statuses which do not appear inT_(p)—for some of the participants p—may therefore not occur in aconsistent state. Although we define consistency using a join operation,this join may not be computed due to privacy and computationalcomplexity issues. As outlined above, the tables are optionally anabstraction of what a person would do, or an abstraction of the actionsof an automated tool, if decisions are made automatically. For example,reference is now made to FIG. 8, which is a schematic illustration ofconnections 801 in a group of connected social network members, anetwork, and respective consistently tables 802-807. Each table belongsto the participant whose column is grey. The group is in a consistentstate, corresponding to a tuple in the join of all tables pertaining tothe group. If, for example, only Alice toggles status, Jerry isinconsistent. If all participants toggle their statuses, the network isonce again consistent.

Optionally, the method is implemented in a one-way communicationarchitecture in which information is sent from a node v to v to nodeswhich are directly connected thereto, for example followers in Twitter™,friends in Facebook™ and the like.

Optionally, the multi participant decision process(es) are managed by anetwork node, such as central units, for example one or more server(s),and/or by a number of computing unit, for example according to a cloudcomputing architecture.

The central unit administers the instances, and may send and receivemessages and/or updates to and/or from every node. The system can workin one of two modes which affect its scalability to a large number ofmulti participant decision process instances:

-   -   1. Unlimited memory, in which the system may use as much memory        as it wants; and    -   2. Constant memory, in which the system may only maintain a        limited constant amount of data per multi participant decision        process instance.

The constant memory mode is suitable to large scale social networks.

The method is optionally based on one-way constant memory communicationwhich atomically transforms a social network, or a segment thereof, fromone consistent state to another consistent state, following a request bya participant to change his decision, for example withdraw consent toparticipate in an event or in another multi participant task. As usedherein, an atomic action and/or a process mean an action or a processwherein all and/or none of the changes persist in the network when theaction and/or process terminate. For example, the following method mayallow participants in a multi participant decision process to withdrawtheir consent to participate in a multi participant event and/orendeavors to achieve a common goal. As described below, a constant extraspace per participant is used in order to realize transitions from onenetwork state which satisfies all consistency requirements to anothersuch state.

First, as shown at 401, the participation of a plurality of participantsin an event is monitored and documented, for example by updatingparticipation status values, for example yes and no.

As shown at 402, in addition to the documented records, for examplestatus values, which are assumed to be consistent, each participant istagged with a stability value, referred to herein as stability status,which is optionally binary, for example one of {stable, unstable},initialized to stable.

As shown at 403, changes in the decisions of participants are monitored,for example by detecting a toggle in a participation status in agraphical user interface (GUI) that is presented to the participants.This allows, as shown at 404, updating participants about changes indecisions of connected participants. For example, whenever a node vchanges a status event and/or a stability value, v's direct connectionswhich participate in the multi participant decision process instance,referred to herein as followers, are notified automatically (theparticipation status is optionally a two-tuple), for example by astability update message. If a certain participant changes hisparticipation status, his stability status is changed to unstable. Uponthe receipt of a stability update message, each following participant,denoted herein as u, remains at yes or no without changing u'sparticipation status or decides change and changes its stability statusto unstable. In such a manner, decisions are made based on all updatesreceived so far. The stability status of the certain participant, andthe stability statuses of participants who decided change, are toggledin case of commit, which is optionally done by an atomic operation thateither installs all the changes or leaves stability statuses unaffected.In case of abort, none of the statuses of participants are toggled.

Now, as shown at 405, the status of the multi participant decisionprocess instance is updated for example from commit to abort or viceversa, for instance as described below. Optionally, as shown at 406,participants which are involved in a multi participant decision processinstance and their decisions are recorded. In addition, the recordingincludes to which participants commit and/or abort message(s) have to besent (and eventually to send these messages). As discussed above, thisoption would potentially require large amounts of memory. As shown at407, the participants of the multi participant decision process instanceare notified about the status of the multi participant decision processinstance. In such an exemplary model, a participant makes decisionsbased on the decisions made by his and/or her followed participants.

Optionally, participants take an active part in processing commit andabort messages. In this embodiment, the multi participant decisionprocess instance progress is tracked by maintaining two counters, c andr for the instance; c denotes a number of paths in which the instanceproceeds and r denotes a number of participants whose current decisionis no. The two counters are initialized with r=0 and c=1. In case of achange of a decision by v, c is increased by the number of v's followersminus one. In case of a yes or a no decision, c decreases by 1. Inaddition, in case of a no decision, r is increased by 1. If aparticipant, whose last decision is no decides yes or change, r isdecreased by 1. When c reaches 0, we say that the multi participantdecision process instance ends, and the system may issues a commit (ifr=0) or an abort (otherwise).

Optionally, each multi participant decision process instance receives aunique identifier (ID). These IDs may be used in order to identify whichdecision belongs to which instance. In such a manner, there is no needto review all the network members to determine the status ofparticipants of a certain instance. Optionally, a commit or abortmessage is issued only to the initiator of the multi participantdecision process instance. Followers may conclude whether the multiparticipant decision process instance commits or aborts, as can be seenin the pseudo-code for this protocol, which appears as in the followingalgorithms 1 (initiator) and 2 (Participant):

Algorithm 1: 1: decide change and change stability to unstable 2: waitfor commit/abort message from system 3: if commit then 4:  togglestatus; 5: end if 6: change stability to stable; 7: end wait for

Algorithm 2: 1: wait for stability and status changes from followedparticipants; 2: if sender is unstable then 3:  if v is stable then4:    decide yes, no or change; 5:  else 6:    decide yes or no(assuming eventual commit); 7:  end if 8:  notify system of decision;9:  if decision is change then 10:    change stability to unstable;11:  end if 12: end if 13: if sender is stable /*commit or abort*/ then14:  if v is unstable then 15:    if sender toggled status then16:      toggle status and change stability to stable; 17:    else18:      change stability to stable; 19:    end if 20:  end if 21: endif 22: end wait for

Optionally, the update message is presented to the respectiveparticipants as an instant message, a notification in a social networkprofile, a graphical update in a graphical representation of theparticipants of a certain instance and the like.

It should be noted that it is possible that a node receives more thanone message, because of cycles in the social network graph, for examplesee Lisa in FIG. 9, which is a schematic illustration of message flowamong exemplary nodes and a list of conditional terms for participation.According to the protocol, the node makes a new decision upon thereceipt of each such message. The current decision (last) is considered.Since a decision may be made only after the receipt of a message, itnecessarily precedes the abort or commit message. When the stabilitystatus of a participant is unstable, decisions are made assuming thatthe multi participant decision process instance will eventually commit.

Consider the scenario depicted in FIG. 9. Marge is the initiator of themulti participant decision process instance and is therefore unstableafter a change decision where the multi participant decision processinstance counter c is 2. Lisa receives this update, decides no andtherefore remains stable where multi participant decision processinstance counter r equals 1 and multi participant decision processinstance counter c equals 1. Bart receives the update, decides changeand becomes unstable. Horner and Lisa receive this update so that themulti participant decision process instance counter c equals 2. Bothdecide yes and the multi participant decision process instance countersc and r equal 0. When the counters are equal, the multi participantdecision process instance ends without any participant who made a lastdecision that is no. The system issues a commit message to Marge. Margetoggles her status and the stability status becomes stable. Lisa andBart receive the update, and Bart toggles status and becomes stable(Lisa and Horner are already stable). Then, the multi participantdecision process instance ends.

According to some embodiments of the present invention, a plurality ofmulti participant decision process instances operate concurrently inorder to enable multiple participants to initiate and manage multiparticipant decision process instances at the same time. In suchembodiments, information about participants in one multi participantdecision process instance may be used in one or more other multiparticipant decision process instances.

Moreover, we would like to allow multiple instances to access the samenodes, and let knowledge gained in one instance be used in anotherinstance, for example as described below.

Optionally, the multi participant decision process instances aresupported by two global structures, such as graphs, for example await-for graph (WFG) and a commit-abort graph (CAG). As in transactionalsystems, the WFG records waiting dependencies between multi participantdecision process instances. The CAG is used to enable a high level ofconcurrency, where one instance takes advantage of work done by anotherinstance. In the CAG, nodes are multi participant decision processinstances. Directed edges are of two types: commit edge and abort edge.A commit edge, denoted herein as ((p,q),c) where p,q are nodes(respectively, abort edge, denoted ((p,q),a)) means that p may commit ifq commits (respectively, if q aborts). This is in fact a decision that aparticipant can make, assuming a prospective abort or commit of anotherinstance.

For example, FIG. 10A is a schematic illustration of a scenario in whicha node, Jerry, decided in P1 to ‘change provided that P2 commits’, and anode, Simba, decided in P2 to ‘change provided that P1 commits’. Thecorresponding CAG, which is optionally created by Algorithm 3, is thegraph shown in FIG. 10B. The commit/abort status of each of P1, P2 maydepend on the commit of the other, and therefore the commitment of bothpreserves consistency.

A node v is involved with multi participant decision process instance P1if v is the initiator of P1 or if v received a message as a consequenceof a decision in P1. For example, v is involved in one multi participantdecision process instance, and receives a stability status update whichindicates it is involved in another multi participant decision processinstance. For example, a pseudo-code for this case, which generalizes aprocess to manage the involvement of v in any number of the instancesmay be defined as follows:

Algorithm 3 1: wait for stability and status changes from followedparticipants; 2: if not involved in any other multi participant decisionprocess instance then 3:   switch to Algorithm 2; 4: else 5:   let P1 bethe multi participant decision process instance in which v is involved;6: end if 7: if sender is unstable then 8: if v is stable (i.e., decidedyes or no in P1) then 9:   if v decided no in P1 then 10:    decide oneof yes, no or change; 11:  end if 12: if v decided yes in P1 then13:  decide one of the following decisions: 14:  1. yes provided that P1commits, or 15:  2. yes provided that P1 aborts, or 16:  3. changeprovided that P1 commits, or 17:  4. change provided that P1 aborts, or18:  5. one of no or yes or change; 19: end if 20: else 21:  decide oneof the following: //v is unstable 22:  6. yes provided that P1 commits,or 23:  7. yes provided that P1 aborts, or 24:  8. change provided thatP1 aborts, or 25:  9. one of no or yes; 26: end if 27: if decision is 1,3 or 6 then 28:  add edge ((P2, P1),c) to CAG; 29: end if 30: ifdecision is 2, 4 or 7 then 31:  add edge ((P2, P1),a) to CAG; 32: end if33: if decision is 8 // see line 24 34:  add edge (P2, P1) to WFG; 35:end if 36: if decision is change then 37:  change stability tounstable;//(of v) 38: end if 39: notify system of decision, WFG and CAGchanges; 40: end if 41: if sender (say, Pi) is stable /*commit orabort*/ then 42:  if v is unstable then 43:    if sender toggled statusthen 44:      toggle v's status and change stability to stable;45:    else 46:      change stability to stable; 47:      delete Pi andrelated edges from WFG, CAG. 48:      stop waiting for Pi (if waiting);49:    end if 50:  end if 51: end if 52: end wait for

The ability to connect one multi participant decision process instanceto another allows a participant to condition his decision in one multiparticipant decision process instance in the outcome of other multiparticipant decision process instance(s). For example, consider aparticipant p, involved in a multi participant decision process instanceP1, which becomes involved in another instance P2. p may want to subjectits decision in P2 to the outcome of P1, which determines the status ofat least one participant that p follows. These dependencies aremaintained in the CAG. The CAG is used in order to ensure that theconcurrent execution of multi participant decision process instances(for the same event) transforms the network from one consistent state toanother.

Algorithm 3 differentiates between three cases when v, which is involvedin P1, receives stability status changes from an unstable participantthat is not involved in P1. For brevity, U denotes a set of participantsinvolved in P1 that v follows. For clarity, in these cases, v is updatedabout the statuses of {v}∪U after the commit and/or abort of P1:

(1) Lines 9-11. v decided no in P1, and therefore knows the statuses ofany of {v}∪U.

(2) Lines 12-19. v decided yes in P1, and therefore knows its ownstatus, but does not know the statuses of participants in U.

(3) Lines 21-26. v decided change in P1, and therefore does not know itsown status, and does not know the statuses of participants in U.

In the presence of multiple instances {P1, P2, . . . , } correspondingsets {U1, U2, . . . } are formed. Here, case (1) holds if v decided noin all P_(i). If v decides yes in at least one of P_(i), and does notdecide change in any other, case (2) is held. If v decides change in atleast one of P_(i), case (3) is held. Note that according to thealgorithm, v may not decide change in more than one P_(i).

Algorithm 3 may be used as a one-way concurrent atomic algorithm for thegeneral case of facilitating changing a decision made. In thisalgorithm, cases (1), (2) and (3) are selected according to the setsU_(i).

It should be noted that, as shown at line 24 of the pseudo-code ofAlgorithm 3, that if P1 aborts, the decision of v in P2 is change. Inthis case, the CAG is not used as even if P1 aborts, P2, which requiresa change decision at v, may or may not commit. Therefore, the decisionof v is postponed. The postponing is recorded in the WFG so there are noopposing decisions. This case coincides with decision 6, since v alreadydecided change in P1, and if P1 commits, v's proper decision is yesrather than change.

As discussed above, a participant may decide multiple times in the sameprotocol instance. As shown in the pseudo-code of Algorithm 3, updatesfrom stable participants, for example updates which follow a commit orabort of an instance, are managed. The Algorithm further allows aparticipant to be involved in more than two multi participant decisionprocess instances.

It should be noted that the pseudo-code of Algorithm 3 is suitable formonitoring the decisions of the initiator. However, the initiator, forexample of P1, which is involved in another instance, for example otherthan P1, can only make a decision 6, 7, 8 and 9 since the initiator isnecessarily unstable.

As discussed above, commit and abort messages may be sent to initiatorsof multi participant decision process instances. For concurrencycontrol, the WFG and the CAG are maintained, for example by the centralserver, which decides whether to send commit or abort messagesaccordingly. A pseudo-code for making such a decision, for example bythe central server, is described in Algorithm 4:

Algorithm 4 1: wait for decision notifications or graph change fromparticipants 2: if decision notification indicates instance P finishesthen 3:  if there is an edge ((P,·),c) or ((P, ·),a) in CAG, or (P, ·)in WFG then 4:    insert P into set F; 5:  else 6:    send commit orabort to P's initiator; 7:  end if 8: end if 9: if change is in WFG andcreates a cycle then 10:  invoke algorithm A1 and abort one instance;//see discussion 11: end if 12: if change is in CAG and creates a cycleof instances in F then 13:  invoke algorithm A2, send abort or commit toall instances in F     according to A2's result. //see discussion 14:end if 15: end wait for

where A1 denotes any algorithm which chooses one node, referred toherein as a victim, from a cycle in the WFG to allow aborting thecorresponding protocol instance, thus resolving a deadlock. Alternativedeadlock resolution could be timeout-based on G. Weikum, G. Vossen:Transactional Information Systems. Morgan Kaufmann, C A, 2002 and P. A.Bernstein, V. Hadzilacoa, N. Goodman: Concurrency Control and recoveryin Database Systems, Addison-Wesley, MA, 1987, which are incorporatedherein by reference. A2 denotes any algorithm which operates on finishedprotocol instances in the CAG and decides, for each instance, whether itis aborted or committed without contradicting the dependencies in theCAG.

Optionally, A2 is optimized by committing the highest possible number offinished instances.

According to some embodiments of the present invention, a centralizedprotocol in which the central unit hosts or connected to another unitwhich hosts, the respective social network. The central unit sends andreceives the update, invitation, and/or feedback messages from theparticipants which are involved in the multi participant decisionprocess instances. Optionally, the central unit manages the multiparticipant decision process according to the topology of the socialgraph. Participants send and receive messages from the central unitrather than from client terminals which are used in the network.

According to some embodiments of the present invention, two-waycommunication architecture is implemented. In such embodiments, even ifedges are directed, messages may be sent between any two connectedparticipants in both directions. This two-way communication architectureis similar to the one-way protocol, however participants do not sendtheir decisions to a central unit. Instead, decisions are sent back tothe participant who sent a change of status message, for example overpeer to peer connections.

Notifications which are necessary for the construction of the CAG andthe WFG may be sent to a central unit. For example, the initiator mayreceive feedback from all participants involved in the protocol, andthen issue commit or abort messages, as described above.

It is expected that during the life of a patent maturing from thisapplication many relevant systems and methods will be developed and thescope of the term a central unit, a computing device, a client terminal,a social network , and a node is intended to include all such newtechnologies a priori.

As used herein the term “about” refers to ±10%.

The terms “comprises”, “comprising”, “includes”, “including”, “having”and their conjugates mean “including but not limited to”. This termencompasses the terms “consisting of” and “consisting essentially of”.

The phrase “consisting essentially of” means that the composition ormethod may include additional ingredients and/or steps, but only if theadditional ingredients and/or steps do not materially alter the basicand novel characteristics of the claimed composition or method.

As used herein, the singular form “a”, an and the include pluralreferences unless the context clearly dictates otherwise. For example,the term “a compound” or “at least one compound” may include a pluralityof compounds, including mixtures thereof.

The word “exemplary” is used herein to mean “serving as an example,instance or illustration”. Any embodiment described as “exemplary” isnot necessarily to be construed as preferred or advantageous over otherembodiments and/or to exclude the incorporation of features from otherembodiments.

The word “optionally” is used herein to mean “is provided in someembodiments and not provided in other embodiments”. Any particularembodiment of the invention may include a plurality of “optional”features unless such features conflict.

Throughout this application, various embodiments of this invention maybe presented in a range format. It should be understood that thedescription in range format is merely for convenience and brevity andshould not be construed as an inflexible limitation on the scope of theinvention. Accordingly, the description of a range should be consideredto have specifically disclosed all the possible subranges as well asindividual numerical values within that range. For example, descriptionof a range such as from 1 to 6 should be considered to have specificallydisclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numberswithin that range, for example, 1, 2, 3, 4, 5, and 6. This appliesregardless of the breadth of the range.

Whenever a numerical range is indicated herein, it is meant to includeany cited numeral (fractional or integral) within the indicated range.The phrases “ranging/ranges between” a first indicate number and asecond indicate number and “ranging/ranges from” a first indicate number“to” a second indicate number are used herein interchangeably and aremeant to include the first and second indicated numbers and all thefractional and integral numerals therebetween.

It is appreciated that certain features of the invention, which are, forclarity, described in the context of separate embodiments, may also beprovided in combination in a single embodiment. Conversely, variousfeatures of the invention, which are, for brevity, described in thecontext of a single embodiment, may also be provided separately or inany suitable subcombination or as suitable in any other describedembodiment of the invention. Certain features described in the contextof various embodiments are not to be considered essential features ofthose embodiments, unless the embodiment is inoperative without thoseelements.

Various embodiments and aspects of the present invention as delineatedhereinabove and as claimed in the claims section below find experimentalsupport in the following examples.

EXAMPLES

Reference is now made to the following examples, which together with theabove descriptions, illustrate some embodiments of the invention in anon limiting fashion.

The following examples demonstrate the usefulness of the above describedmethods and systems by providing examples for the richness ofpossibilities to create social protocols derived from the presentedgeneric protocol.

Setting Meetings

Couple meeting example: a simple protocol for setting a meeting betweentwo participants is implemented by sending the following exemplarymessage to a single participant p (an initiation message):

(Event=e₀; Type=A; Forwarding=false; Feedback=(p, true))

A response (feedback) message with an RSVP is required when (and if) therecipient responds positively to the invitation message. By this, themeeting is set.

Meeting a Few Example

Another example is that of one participant who invites a few people to ameeting. In this case, the same message as in the previous example issent to all invitees. Note that the invitees may well be connected inthe social network, and therefore a decision made by one participant isan input to the other's decision component. If the initiator wants adeadline for the feedback, an exemplary message is:

(Event=e_(l); Type=A; Forwarding false; Feedback=(p, true);Deadline=12:30)

Meeting with Different Roles

Not all messages associated with e₀ need be the same. Consider, forexample, a case where a group manager would like to present a project tohis manger(s). He invites group members as in the previous example, butthe invitation to his manager includes forwarding rights:

(Event=e₂; Type=A; Forwarding=true; Feedback=(p, true); Deadline=12:30)

Organizing Parties

A formal party. The following initiation message is sent by p, theinitiator of a formal party, in which every participant may bringexactly one partner, who cannot bring a partner or forward respectiveinvitation messages.

(Event=e₃; Type=A; Forwarding=(true, limited);

Feedback=(p, true); Deadline=13:00)

where p′ denotes one of the recipients. The following subsequentforwarding message is sent by p′:

(Event=e₃; Type=B; Forwarding=false;

Feedback=(p′, true); Deadline=11:00)

Note that further forwarding is not allowed, the deadline is 11:00rather than 13:00, and feedback is to be sent to p′. Upon receiving afeedback from another participant, p′ may send a feedback to p:

(Event=E₃; Type=C; Status=Yes)

A Surprise Party

p1 would like to organize a surprise party for p2. Participants must bedirect friends of p2, and p2 should not be aware of the party. p1 canuse the social network in order to invite friends of p2 (with whom p isnot necessarily directly connected). Let Q₁ be a query satisfied byparticipants who are directly connected to p2 (and are not p2 herself).The following is the message which starts the protocol. p1 locked theforwarding rules, which means that if the message is forwarded, therespective forwarding rules are not changed.

(Event=e₄; Type=A; Forwarding=(q1, unlimited), locked; Feedback=false)

An Open Party

The following initiation message is used to promote a party that is opento everyone:

(Event=e₅; Type=A; Forwarding=(true, unlimited); Feedback=false)

Resources

The following initiation message is used to distribute tickets to anevent. Alice's ticket giveaway in the example above starts with thefollowing two messages:

-   -   (Event=e₆; Type=A; Forwarding=(true,unlimited);        Feedback=(false),locked; Resource=(3,1); and    -   (Event=e₆; Type=A; Forwarding=(true, unlimited);        Feedback=(false), locked; Resource=(2,1))

The first invitation message, with forwarding rights to forward theinvitation message until three tickets are marked as taken, is sent toKaren. The second invitation message, with forwarding rights to forwardthe invitation message until two tickets are marked as taken, is sent toBob. Karen's forwarding message to Li is as follows:

-   -   (Event=e₆; Type=B; Forwarding=(true, unlimited); Feedback=false,        locked; Resource=(2,1))

A feedback message for returning two tickets is:

(Event=E₆; Type=C; Resource=2)

A Dinner Party with k Places

Here, the resource is k places in a dinner party initiated by p. Theinvitation is to participants distant at most two edges from p (or,satisfying q₂). Each initial invitee receives k₀ places. Eachparticipant that responds positively may take up to two places. Notethat this is different than the limited forwarding privilege discussedabove. Here, giving the second place is not a part of the protocol (as aconsequence, a participant need not necessarily give the place tosomeone who satisfies q2):

-   -   (Event=e₇; Type=A; Forwarding=(q₂, unlimited); Feedback=(p,        true), locked; Resource=(k′,2))

Although the invention has been described in conjunction with specificembodiments thereof, it is evident that many alternatives, modificationsand variations will be apparent to those skilled in the art.Accordingly, it is intended to embrace all such alternatives,modifications and variations that fall within the spirit and broad scopeof the appended claims.

All publications, patents and patent applications mentioned in thisspecification are herein incorporated in their entirety by referenceinto the specification, to the same extent as if each individualpublication, patent or patent application was specifically andindividually indicated to be incorporated herein by reference. Inaddition, citation or identification of any reference in thisapplication shall not be construed as an admission that such referenceis available as prior art to the present invention. To the extent thatsection headings are used, they should not be construed as necessarilylimiting.

1. A method for managing communication among a plurality of socialnetwork members, comprising: receiving, from a user, at least oneforward rule limiting the distribution an invitation message forparticipating in a multi participant task; forwarding said invitationmessage to at least one addressee from a plurality of social networkmembers; monitoring the forwarding of said invitation message by said atleast one addressee to at least one additional addressee from saidplurality of social network members under said at least one forwardrule; and managing the distribution of said invitation message accordingto said monitoring.
 2. The method of claim 1, further comprising:monitoring a plurality of feedbacks to said invitation message todetermine whether said multi participant task is achieved; and updatinga status of said multi participant task according to said determination.3. The method of claim 1, wherein each said additional addressee mayforward said invitation message to at least one further additionaladdressee from said plurality of social network members under said atleast one forward rule and so on and so forth.
 4. The method of claim 1,wherein said monitoring comprises allowing said at least one addresseeof said invitation message to adjust said at least one forward rule andforwarding said invitation message with said at least one adjustedforward rule to said at least one additional addressee so that said atleast one additional addressee may forward said invitation message tounder said at least one adjusted forward rule.
 5. The method of claim 1,wherein said monitoring comprises allowing said at least one addresseeof said invitation message to add at least one new forward rule to saidat least one forward rule and forwarding said invitation message withsaid at least one added forward rule to said at least one additionaladdressee so that said at least one additional addressee may forwardsaid invitation message to under said at least one adjusted forwardrule.
 6. The method of claim 1, wherein said at least one forward ruledefines at least one characteristic of a potential addressee of saidinvitation message.
 7. The method of claim 2, further comprisingallowing at least one recipient of said invitation message to define atleast one conditional rule for participation in said multi participanttask; said monitoring comprises monitoring the fulfillment of said atleast one conditional rule and determining whether said multiparticipant task being achieved according to said fulfillment.
 8. Themethod of claim 7, wherein said at least one conditional rule defines atleast one of an attendance of one of said plurality of social networkmembers in said multi participant task and a nonattendance of one ofsaid plurality of social network members in said multi participant task.9. The method of claim 1, wherein said multi participant task comprisesallocating at least one resource to a group of said plurality of socialnetwork members; further comprising adjusting said at least oneforwarding rule according to the availability of said at least oneresource.
 10. The method of claim 2, wherein each of said plurality offeedbacks comprises a feedback required for completing said multiparticipant task.
 11. The method of claim 10, wherein said feedback isselected from a group consisting of: a completion of a survey,acquisition of a product, a money transfer, joining a coupon group, andcontent uploading.
 12. The method of claim 1, wherein said invitationmessage defines at least one validity rule limiting the validity of afeedback of the reception thereof.
 13. The method of claim 12, whereinsaid at least one validity rule comprises a time limit constraint. 14.The method of claim 12, wherein said at least one validity rulecomprises a survey completion constraint.
 15. The method of claim 1,wherein said at least one forward rule comprises a black list of atleast one of said plurality of social network members who are refusedfrom participating in said multi participant task.
 16. The method ofclaim 1, wherein said at least one forward rule comprises a white listof a group of allowed addressees from said plurality of social networkmembers.
 17. A system of managing communication among a plurality ofsocial network members, comprising: a first user interface which allowsa user to define an invitation message for participating in a multiparticipant task and at least one message forward rule limiting thedistribution thereof; a second user interface which allows eachrecipient of said invitation message to select at least one addresseefrom said plurality of social network members and verifies that said atleast one addressee complies with said at least one message forwardrule; and a monitoring module which monitors a plurality of feedbacks tosaid invitation message to determine whether said multi participant taskis achieved and updates a status of said multi participant taskaccording to said plurality of feedbacks.
 18. A method for managing amulti participant process among a plurality of social network members,comprising: monitoring a plurality of decisions indicative of aparticipation in a multi participant task of a plurality of socialnetwork members; setting, according to said monitoring, a plurality ofstability statuses each for another of said plurality of social networkmembers; detecting at least one first change, made by at least one ofsaid plurality of social network members, in at least one of saidplurality of decisions; notifying members of a group of said pluralityof social network members which are socially connected to said at leastone social network member about said at least one first change to alloweach said member to perform at least one second change in at least onerespective of said plurality of decisions; updating respective stabilitystatuses of said plurality of stability statuses according to saidchange; and determining whether said multi participant task is fulfilledor not according to said plurality of stability statuses.
 19. The methodof claim 18, wherein the decision of each said social network member isrecorded in a consistency table indicative of the decision of arespective group of said plurality of social network members which aresocially connected thereto.
 20. The method of claim 18, wherein saidnotifying is performed in a one-way communication architecture.
 21. Amethod for managing a multi participant process among a plurality ofsocial network members, comprising: using at least one global structureto model conditional relations between a plurality of multi participantdecision process instances; monitoring a plurality of decisionsindicative of a participation of a plurality of social network membersin said plurality of multi participant decision process instances;updating a completion status of a first of said plurality of multiparticipant decision process instances according to said monitoring; andnotifying a plurality of members of a second of said plurality of multiparticipant decision process instances about said updated completionstatus to allow said plurality of members to change decisions madeduring said second multi participant decision process instance.
 22. Themethod of claim 21, wherein said at least one global structure comprisea commit abort graph (CAG) wherein each node represents a completionstatus of another of said plurality of multi participant decisionprocess instances.
 23. The method of claim 21, wherein said at least oneglobal structure comprise a wait-for graph (WFG) wherein each noderepresents a stability status of another of said plurality of multiparticipant decision process instances; wherein said completion statusis determined based on said WFG.
 24. A method for collecting funds for amulti participant task among a plurality of social network members,comprising: setting an amount of funds required for achieving a multiparticipant task by a certain deadline; sending a plurality of messagesto notify a plurality of social network members about said amount, saidmulti participant task, and said deadline; monitoring a plurality offeedbacks to said plurality of messages and said deadline to determinewhether said multi participant task being achieved; and outputting saiddetermination.
 25. The method of claim 24, wherein said monitoringcomprises calculating a reminder left for collecting said amountaccording to said plurality of messages and sending a plurality ofupdate messages to notify said plurality of social network members aboutsaid reminder.